#ifndef FACADE_H_
#define FACADE_H_

#include "subsystem.h"

#include <iostream>

using namespace std;

class Facade
{
public:
	Facade() {}

public:
	void methodA()
	{
		cout<<"Start Facade::methodA"<<endl;
		cout<<"\t";
		m_subOne.methodOne();
		cout<<"\t";
		m_subTwo.methodTwo();
		cout<<"End Facade::methodA"<<endl;
		cout<<"-------------------------------"<<endl;
	}

	void methodB()
	{
		cout<<"Start Facade::methodB"<<endl;
		cout<<"\t";
		m_subTwo.methodTwo();
		cout<<"\t";
		m_subThree.methodThree();
		cout<<"End Facade::methodB"<<endl;
		cout<<"-------------------------------"<<endl;
	}

private:
	SubSystemOne m_subOne;
	SubSystemTwo m_subTwo;
	SubSystemThree m_subThree;
};

#endif // FACADE_H_
